package model

import (
	"manager/model/entity"
)

// StoreBindUserCreateRequest 创建现场数据
type StoreBindUserCreateRequest struct {
	StoreId int64 `json:"store_id"`

	UserId int64 `json:"user_id"`

	IsLeader int `json:"is_leader"`

	UpdatedAt int64 `json:"updated_at"`
}

// StoreBindUserUpdateRequest 更新现场数据
type StoreBindUserUpdateRequest struct {
	Id int64 `json:"id"`

	StoreId *int64 `json:"store_id"`

	UserId *int64 `json:"user_id"`

	IsLeader *int `json:"is_leader"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt *int64 `json:"updated_at"`
}

// StoreBindUserListRequest 列表现场数据
type StoreBindUserListRequest struct {
	Index int `json:"index"`
	Size  int `json:"size"`

	Id int64 `json:"id"`

	StoreId *int64 `json:"store_id"`

	UserId *int64 `json:"user_id"`

	IsLeader *int `json:"is_leader"`

	UpdatedAt *int64 `json:"updated_at"`
}

// StoreBindUserListResponse 列表回包数据
type StoreBindUserListResponse struct {
	Total int                  `json:"total"`
	List  []*StoreBindUserInfo `json:"list"`
}

// StoreBindUserInfoRequest 列表现场数据
type StoreBindUserInfoRequest struct {
	Id int64 `json:"id"`

	StoreId *int64 `json:"store_id"`

	UserId *int64 `json:"user_id"`

	IsLeader *int `json:"is_leader"`

	UpdatedAt *int64 `json:"updated_at"`
}

// StoreBindUserInfo 详细数据
type StoreBindUserInfo struct {
	Id int64 `json:"id"`

	StoreId int64 `json:"store_id"`

	UserId int64 `json:"user_id"`

	IsLeader int `json:"is_leader"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt int64 `json:"updated_at"`
}

// StoreBindUserDeleteRequest 删除现场数据
type StoreBindUserDeleteRequest struct {
	Id int64 `json:"id"`
}

// StoreBindUsersEntityToDto entity数据转换
func StoreBindUsersEntityToDto(storeBindUsers []*entity.StoreBindUser) []*StoreBindUserInfo {
	out := make([]*StoreBindUserInfo, 0, len(storeBindUsers))
	for _, c := range storeBindUsers {
		out = append(out, StoreBindUserEntityToDto(c))
	}
	return out
}

// StoreBindUserEntityToDto entity数据转换
func StoreBindUserEntityToDto(e *entity.StoreBindUser) *StoreBindUserInfo {
	return &StoreBindUserInfo{

		Id: e.Id,

		StoreId: e.StoreId,

		UserId: e.UserId,

		IsLeader: e.IsLeader,

		CreatedAt: e.CreatedAt,

		UpdatedAt: e.UpdatedAt,
	}
}
